import axios from 'axios'
import router from "@/router";

const request = axios.create({
  //baseURL: 'http://localhost:9090',
  baseURL: 'http://1.12.249.140:9090',
  timeout: 5000
})
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token，对请求参数统一加密
// 添加请求拦截器
request.interceptors.request.use(config => {
      config.headers['Content-Type'] = 'application/json;charset=utf-8';
      // 在请求头中添加Authorization字段并附上token
      const token = localStorage.getItem('token');
      if (token) {
        config.headers.Authorization = token;
      }
      return config;
    },
    error => {
      return Promise.reject(error);
    }
);

// 添加响应拦截器
request.interceptors.response.use(
    response => {
      // 获取响应头中的token并存储到localStorage中
      const token = response.headers.authorization;
      if (token) {
        localStorage.setItem('token', token);
      }
      let res = response.data;
      // 如果是返回的文件
      if (response.config.responseType === 'blob') {
          return res
      }
      // 兼容服务端返回的字符串数据
      if (typeof res === 'string') {
          res = res ? JSON.parse(res) : res
      }
      // 当权限验证不通过的时候给出提示
      if (res.code === 40000) {
          router.push("/login")
      }
      return res;
    },
    error => {
      return Promise.reject(error);
    }
);


export default request